1. Field of the Invention
The present invention relates to systems and methods for provisioning, allocating, and managing virtual and physical machines in a network computing environment.
2. Description of the Related Art
In enterprise computing environments, in which users connect to information systems from a variety of geographically diverse and dispersed environments, it is necessary to standardize the computing environment so that a user working remotely from a home or personal laptop computer is able to access the same applications and network resources as users connecting from the office.
In particular, with the growth in computer services and computer software has come an increased need to allocate and manage computer and software resources effectively and efficiently. As computer software becomes more interoperable and operating systems become more complex, with increased needs for security and reliability, it becomes necessary to find alternatives to having each user with their own computer, whose software and operating system components can become corrupted, unstable, or unreliable.
Corporate and business computer installations throughout the world overwhelmingly use software that runs on the Microsoft Windows family of operating systems. Desktop computers and servers running Windows operating systems are available from a wide variety of vendors and in countless configurations.
In the past, a Windows component, “Terminal Services,” enabled users to access applications and data stored on remove computers over standard network connections. A Windows server running the Terminal Services component is referred to as a Windows Terminal Server, or simply, a Terminal Server.
Terminal Server is a Microsoft-specific approach to server-centric computing in that it transforms a Window Server into a mainframe-like multi-user operating system, allowing multiple concurrent users to start an interactive Windows session remotely using a display protocol (also referred to as a “presentation protocol”).
In this environment, instead of installing line-of-business applications on every desktop computer in an enterprise, information technology (“IT”) departments would deploy these applications to one or more centralized Terminal Servers, and allow users to connect and use these applications using conventional LAN, WAN or Internet networking connections. In addition to its enhanced accessibility features, Terminal Server offers better security than standalone, per-desktop installations. Furthermore, this arrangement makes software upgrades and problem troubleshooting a much easier proposition for technical service personnel.
Terminal Servers provide a number of benefits. Terminal Servers allow for a cluster arrangement, more commonly referred to as a server farm, which can be managed as a single entity.
In addition, the user sessions on the server are brokered using a purpose-built service often known as the “broker” or “connection manager”. This service redirects user connections to the most suitable Terminal Server. For an incoming user, if a disconnected session exists on one of the farm servers, the user is reconnected to his/her disconnected session.
Each Terminal Server keeps track of its user sessions, active and disconnected, as well as all the running processes associated with these sessions. User sessions can be remotely controlled for technical assistance purposes, and running processes can be arbitrarily terminated. Idle user sessions can be optionally logged off to reclaim wasted computing resources.
Furthermore, individual applications can be published to the users, allowing the users to remotely start these applications without necessitating an entire desktop session. Finally, remote sessions can be Secure Sockets Sayer (SSL)-protected using a purpose-built SSL VPN (virtual private network).
FIG. 1 illustrates the multi-user computing architecture of Terminal Server referred to in the industry as Presentation Virtualization. In this Figure, numerous users 102 share one operating system 104 and one set of applications 106 installed on the Terminal Services server 100.
Virtual desktop computing is a further extension of the concept of enhancing manageability and efficiency in allocation of computer resources. Virtual desktop computing is a desktop management model that uses virtual machine technology (a.k.a. hypervisor, virtualization software) from vendors like VMware, Virtual Iron, Microsoft, for example, to transform traditional physical desktop computers into centralized virtual resources. By “virtualizing” the physical computer, the entire desktop operating system environment and installed applications, as well as memory and hard disk resources, are encapsulated inside multiple files on the server, collectively constituting a virtual machine (VM). For all practical purposes, a VM is no different than a physical machine in that it has all the required components that make up a full-functional computer. These include a BIOS, a CPU, random access memory (RAM), a network adapter, and a hard disk. From the user's perspective, the VM presents itself and operates like an ordinary physical desktop computer.
Like Terminal Server, Virtual Desktop Computing (VDC) is a server-centric computing model. However, unlike Terminal Server, VDC leverages hardware virtualization technology to transform a physical host into multiple VMs, each running a standard Windows desktop operating system such as Windows XP or Vista. As such, one or more physical hosts running virtualization software are effectively transformed into mainframe-like multi-user systems, allowing each user to interactively connect to a fully-isolated VM using a display protocol.
FIG. 2 illustrates the multi-user computing architecture devised using hardware virtualization. Here, the hypervisor software 202 running on physical servers 200 manages a number of virtual machines 204. In this example, four VMs are shown, but the number can vary greatly. Each VM 204 has its own virtual operating system and application set which are encapsulated as files on the servers 200, and which are managed by the hypervisor program.
PC Blades offer a third approach to desktop computer consolidation. Mounds of traditional desktop computers geographically dispersed throughout the enterprise are effectively replaced with centralized PC blades servers housed inside multiple chasses. Like Terminal Servers and desktop virtualization, PC blade chasses are deployed as data center infrastructure assets, thus offering better security and easier manageability.
Like Virtual Desktop Computing, PC blades allow each user to interactively connect to a fully-isolated computer (a physical blade PC as opposed to a VM) using a display protocol.
FIG. 3 illustrates a multi-user PC architecture, with three blades 302 mounted in a single chassis 300, with each blade 302 having its own operating system and applications.
While all the aforementioned models aim to deliver the same efficiencies, they do not achieve this objective equally, despite their apparent similarities. Each approach can be shown to suffer from unique drawbacks inherently solved by one of the other models. In effect, an enterprise is likely to build a hybrid system embracing all of the aforementioned models, allowing it to satisfy the complex business computing requirements of its employees.